package com.boboPlanet.dao;

import com.boboPlanet.entity.po.AllowPathPo;
import com.boboPlanet.entity.po.ConfigDictPO;
import com.boboPlanet.entity.po.GatewayPo;
import com.boboPlanet.entity.vo.AllowPathVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description: TODO
 * @Author: mis_wu
 * @Date: 2023/2/13
 **/

@Mapper
public interface GatewayMapper {
    /**
     * 获取所有配置
     * @return list
     */
    List<GatewayPo> getAllGatewayConfig();

    /**
     * 添加网关配置
     * @param gatewayPo po
     * @return boolean
     */
    Boolean insertGatewayConfig(@Param("po") GatewayPo gatewayPo);

    /**
     * 更新gateway配置
     * @param gatewayEntity 路由对象
     * @return int
     */
    Integer updateGatewayConfig(@Param("entity") GatewayPo gatewayEntity);

    /**
     * 根据routeId查询是否存在配置
     * @param routeId routeId
     * @return int
     */
    Integer getGatewayConfigByRouteId(@Param("routeId") String routeId);

    /**
     * 根据路径获取执行人获取
     * @param path path
     * @param page page
     * @param pageSize page
     * @return AllowPathVo
     */
    List<AllowPathVo> getAllAllowPath(@Param("path") String path, @Param("page") Integer page, @Param("pageSize") Integer pageSize);

    /**
     * 添加 filter 路径
     * @param allowPathPo allowPathPo
     * @return Boolean
     */
    Boolean addAllowPath(AllowPathPo allowPathPo);

    /**
     * todo  待做
     * 分页获取所有配置
     * @return List
     */
    List<ConfigDictPO> getDictConfigByPage();

    /**
     * 根据编码获取配置
     * @return ConfigDictPO
     */
    ConfigDictPO getOneDictConfigByCode(@Param("configCode") String configCode);

    Integer userIsExist(@Param("token") String token);


}
